﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Sistema_de_Patrimonio.SDP_DAL
{
    class Dependencia_DAL
    {
        public DataSet DependenciaLoad()
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlDataAdapter Command = new SqlDataAdapter(@"Select Dependencia_Id as 'ID', Dependencia_Nombre as 'Dependencia' from Dependencias", Connection);
            DataSet DataSet = new DataSet();
            Command.Fill(DataSet);
            return (DataSet);
        }

        public DataSet DependenciaLoadCmbox()
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlDataAdapter Command = new SqlDataAdapter(@"Select cast(Dependencia_Id as char(4)) + Dependencia_Nombre as 'Dependencia', Dependencia_Id as 'ID' from Dependencias", Connection);
            DataSet DataSet = new DataSet();
            Command.Fill(DataSet);
            return (DataSet);
        }

        public void DependenciaInsert(UInt32 Numero, String Dependencia)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"insert into Dependencias (Dependencia_Id, Dependencia_Nombre) 
                                                                values ('" + Numero + "', '" + Dependencia + "')", Connection);
            Common_Files.Connection.CloseConecction(Connection, Command);
        }

        public void ResponsableUpdate(String Nombre, UInt32 Dependencia, UInt32 ID)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"update Responsables set Responsable_Nombre = '" + Nombre + "', Dependencia_ID = '" + Dependencia + "' where Responsable_ID = '" + ID + "' ", Connection);
            Common_Files.Connection.CloseConecction(Connection, Command);
        }

        public void ResponsableNameUpdate(String Nombre, UInt32 ID)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"update Responsables set Responsable_Nombre = '" + Nombre + "' where Responsable_ID = '" + ID + "' ", Connection);
            Common_Files.Connection.CloseConecction(Connection, Command);
        }

        public void ResponsableInsert(String Nombre, UInt32 Dependencia)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"insert into Responsables (Responsable_Nombre, Dependencia_Id) 
                                                                values ('" + Nombre + "', '" + Dependencia + "')", Connection);
            Common_Files.Connection.CloseConecction(Connection, Command);
        }

        public String NombreResponsable(UInt32 Responsable)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlDataAdapter Command = new SqlDataAdapter(@"Select Responsable_Nombre as 'Responsable' from Responsables  where Responsable_ID = '" + Responsable + "'", Connection);
            DataSet DataSet = new DataSet();
            Command.Fill(DataSet);
            if (DataSet.Tables[0].Rows.Count > 0)
                return DataSet.Tables[0].Rows[0].ItemArray[0].ToString();
            else
                return "";
        }

        public void DependenciaNumeroUpdate(UInt32 Numero, String Dependencia, UInt32 NumeroAnterior)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"Delete from Dependencias where Dependencia_ID = '" + NumeroAnterior + "'", Connection);
            Common_Files.Connection.CloseConecction(Connection, Command);
            this.DependenciaInsert(Numero, Dependencia);
        }

        public void DependenciaNombreUpdate(UInt32 Numero, String Dependencia)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"update Dependencias set Dependencia_Nombre = '" + Dependencia + "' where Dependencia_ID = '" + Numero + "' ", Connection);
            Common_Files.Connection.CloseConecction(Connection, Command);
        }


        public DataSet ResponsablesLoad(UInt32 DependenciaAux)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlDataAdapter Command = new SqlDataAdapter(@"Select Responsable_Nombre as 'Nombre', Responsable_ID as 'ID' from Responsables where Dependencia_Id = '" + DependenciaAux + "'", Connection);
            DataSet DataSet = new DataSet();
            Command.Fill(DataSet);
            return (DataSet);
        }

        public void EliminarResponsable(UInt32 Responsable)
        {
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"Delete from Responsables where Responsable_ID = '" + Responsable + "'", Connection);
            Command.ExecuteNonQuery();
            Connection.Close();
        }

        public void EliminarDependencia(UInt32 Dependencia)
        {
            SqlConnection Connection2 = Common_Files.Connection.OpenConecction();
            SqlCommand Command2 = new SqlCommand(@"Delete from Responsables where Dependencia_ID = '" + Dependencia + "'", Connection2);
            Command2.ExecuteNonQuery();
            Connection2.Close();
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlCommand Command = new SqlCommand(@"Delete from Dependencias where Dependencia_ID = '" + Dependencia + "'", Connection);
            Command.ExecuteNonQuery();
            Connection.Close();
            
        }

        public String NombreDependencia(int Dependencia)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlDataAdapter Command = new SqlDataAdapter(@"Select Dependencia_Nombre as 'Dependencia' from Dependencias  where Dependencia_ID = '" + Dependencia + "'", Connection);
            DataSet DataSet = new DataSet();
            Command.Fill(DataSet);
            if (DataSet.Tables[0].Rows.Count > 0)
                return DataSet.Tables[0].Rows[0].ItemArray[0].ToString();
            else
                return "";
        }

        public bool ExisteDependencia(int Dependencia)
        {
            //EL @ es para dividir una línea de código en 2
            SqlConnection Connection = Common_Files.Connection.OpenConecction();
            SqlDataAdapter Command = new SqlDataAdapter(@"Select Dependencia_Nombre as 'Dependencia' from Dependencias  where Dependencia_ID = '" + Dependencia + "'", Connection);
            DataSet DataSet = new DataSet();
            Command.Fill(DataSet);
            if (DataSet.Tables[0].Rows.Count > 0)
                return true;
            else return false;
        }
    }
}
